package com.provafinal.bean;

import com.provafinal.dao.AcessoDAO;
import com.provafinal.entity.Acesso;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

@ManagedBean(name = "bAcesso")
@RequestScoped
public class AcessoBean extends AbstractBean {

    private final AcessoDAO acessoDao = new AcessoDAO();

    private Acesso acesso;

    private List<Acesso> acessos;

    public String gravar() throws Exception {
        try {
            if (acesso.getId() == null) {
                acessoDao.salvar(acesso);
            } else {
                acessoDao.alterar(acesso);
            }
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Gravado com sucesso!"));
            acesso = null;
            return null;
            //return redirect("cadastro_acesso");
        } catch (Exception e) {
            addMessageToRequest(e.getMessage());
            return null;
        }

    }

    public String alterar(Integer acessoId) throws Exception {
        acesso = acessoDao.carregar(acessoId, Acesso.class);
        return null;
    }

    public String excluir(Integer acessoId) throws Exception {
        acesso = acessoDao.carregar(acessoId, Acesso.class);
        acessoDao.excluir(acesso);
        return redirect("cadastro_acesso");
    }

    public String limpar() throws Exception {
        acesso = null;
        return null;
    }

    public Acesso getAcesso() {
        if (acesso == null) {
            acesso = new Acesso();
        }
        return acesso;
    }

    public void setAcesso(Acesso acesso) {
        this.acesso = acesso;
    }

    public List<Acesso> getAcessos() {
        if (acessos == null) {
            acessos = acessoDao.listarAcesso();
        }
        return acessos;
    }

    public void setAcessos(List<Acesso> acessos) {
        this.acessos = acessos;
    }
}
